﻿using System.Collections;
using System.Text;
using System.Collections.Generic;
using UnityEngine;
using XLua;

public class LoadLua : MonoBehaviour
{
    //创建XLUA虚拟机（最好创建一个虚拟机，多的话容易耗费性能）
    private LuaEnv luaEnv;
	
	void Start ()
    {
        luaEnv = new LuaEnv();

        //读取lua内容
        luaEnv.DoString("print('HelloWord!')");

        //读取lua文件（文件内容是lua脚本）
        //其实require是调用一个个Loader（优先加载自定义Loader）
        //有一个Loader加载成功将不再停止加载
        //以下require执行的Loader是在Resources文件夹读取并执行Loader.lua
        luaEnv.DoString("require 'LoadLua'");

        //自定义Loader
        luaEnv.AddLoader((ref string str) => {
            Debug.Log("自定义Loader参数为:" + str);
            return Encoding.UTF8.GetBytes("return 'HelloLoader!'");
        });
        luaEnv.DoString("print ( require '参数')");
    }
	
	void Update ()
    {
        if (luaEnv != null)
        {
            luaEnv.Tick();
        }
	}

    private void OnDestroy()
    {
        //释放
        luaEnv.Dispose();
    }
}

